# 数据文件夹地址
def get_datasetsPath():
    return "../datasets"
# 模型文件夹地址
def get_modulePath():
    return "../model"


"""
填补一个特征的缺失值(算法：随机森林)
参数：
X：要填补的特征矩阵
y：没有缺失值的标签(多标签下使用第一个)
col：需要填补的列名
"""
def fill_missing_rf(X, y, col):
    import pandas as pd
    data_X = X.copy()
    fill = data_X.loc[:, col]
    data_X = pd.concat([data_X.loc[:, data_X.columns != col], pd.DataFrame(y)], axis=1)

    Y_train = fill[fill.notnull()]
    Y_test = fill[fill.isnull()]
    X_train = data_X.iloc[Y_train.index, :]
    X_test = data_X.iloc[Y_test.index, :]

    from sklearn.ensemble import RandomForestRegressor
    clf = RandomForestRegressor(n_estimators=100)
    clf = clf.fit(X_train, Y_train)
    Y_predict = clf.predict(X_test)
    return Y_predict